Historically, a single computing device ran a single operating system. Each computer user, for instance, was assigned his or her own client computing device, and that computing device ran an operating system in which the user could run application programs as desired. Similarly, a server computing device ran a single operating system that ran application programs.
However, this type of computer architecture has disadvantages. First, it is costly, because each computing device needs a complete assortment of processors, memory, and input/output (I/O) devices to properly function whether it is being utilized or not. Second, the use of this type of architecture can be inefficient. At any given time, a given computing device may not be performing work, and rather is sitting idle, waiting for a task to be performed during times when workloads increase.
Therefore, a technology has been developed in which more than one operating system is capable of running on a single computing device, sharing at least the memory and the processors of the computing device. Such technology is referred to as virtualization. With virtualization, a given computing device has a number of virtual machines, where an operating system is run in each virtual machine. Therefore, operating systems for multiple computer users can be run simultaneously on a single computing device, such as a single server computing device. When workload demands are high, more virtual machines can be instantiated and run. When workloads are low, virtual machines can be suspended.
As such, periodically, maintenance and management of the virtual machines may have to be performed. As one example, a virtual machine may have to be migrated from one server computing device, or server, to another server computing device, or server. For instance, the server that is currently hosting the virtual machine may need to be serviced, such that the virtual machine has to be migrated to another server while the service or maintenance is being performed. Improving the ability of a user such as an administrator to maintain and manage virtual machines in this and other ways is advantageous, because it makes the administrator's job easier, and can enhance the business case for adopting virtual machines within organizational environments like corporate environments.